LocalDateTime ক্লাসটি Java 8 এ java.time প্যাকেজে প্রবর্তিত হয়েছে এবং এটি Date-Time API এর একটি গুরুত্বপূর্ণ অংশ। LocalDateTime স্ট্যান্ডার্ড টাইমজোন বা UTC (Coordinated Universal Time) ছাড়া, শুধুমাত্র একটি স্থানীয় তারিখ এবং সময় ধারণ করে। এটি ISO-8601 স্ট্যান্ডার্ড অনুযায়ী নির্দিষ্ট সময়ের কোনো অঞ্চলের তথ্য ছাড়াই তারিখ এবং সময়ের মূল্য প্রতিনিধিত্ব করে।
LocalDateTime Class এর বৈশিষ্ট্য:
- Immutable:
LocalDateTimeএকটি immutable ক্লাস, অর্থাৎ একবার তৈরি হলে তার মান পরিবর্তন করা যায় না। - Time Zone-independent: এটি টাইমজোনের বিষয়ে কোনো তথ্য ধারণ করে না। এটি শুধুমাত্র স্থানীয় তারিখ এবং সময় ধারণ করে, টাইমজোন এবং গ্রীনউইচ মান সময় (GMT) ছাড়া।
- Thread-safe: যেহেতু এটি immutable, তাই এটি thread-safe এবং একাধিক থ্রেডের মধ্যে সুরক্ষিতভাবে ব্যবহার করা যায়।
LocalDateTime Class এর প্রধান মেথডসমূহ:
now(): এটি বর্তমানLocalDateTimeঅবজেক্ট প্রদান করে।of(): নির্দিষ্ট তারিখ এবং সময় থেকে একটিLocalDateTimeঅবজেক্ট তৈরি করা যায়।plus()এবংminus(): সময় বা দিন যোগ বা বিয়োগ করতে ব্যবহৃত হয়।getYear(),getMonth(),getDayOfMonth(),getHour()ইত্যাদি: এসব মেথডের মাধ্যমে LocalDateTime অবজেক্ট থেকে নির্দিষ্ট অংশের মান পাওয়া যায়।format(): একটি নির্দিষ্ট ফরম্যাটে তারিখ এবং সময় প্রদর্শন করতে ব্যবহৃত হয়।toString(): একটি স্ট্রিং রিটার্ন করে যা ISO-8601 প্যাটার্নে সময় এবং তারিখের মান থাকে।
LocalDateTime Class ব্যবহার করার উদাহরণ:
1. LocalDateTime.now() - বর্তমান সময় এবং তারিখ গ্রহণ করা:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Get the current LocalDateTime
LocalDateTime currentDateTime = LocalDateTime.now();
// Print the current date and time
System.out.println("Current Date and Time: " + currentDateTime);
}
}
আউটপুট:
Current Date and Time: 2024-12-23T14:45:30.123
এখানে LocalDateTime.now() মেথডটি বর্তমান স্থানীয় সময় এবং তারিখ রিটার্ন করে।
2. LocalDateTime.of() - নির্দিষ্ট তারিখ এবং সময় তৈরি করা:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a LocalDateTime object for a specific date and time
LocalDateTime specificDateTime = LocalDateTime.of(2024, 12, 25, 10, 30);
// Print the specific date and time
System.out.println("Specific Date and Time: " + specificDateTime);
}
}
আউটপুট:
Specific Date and Time: 2024-12-25T10:30
এখানে LocalDateTime.of() মেথডটি 2024-12-25 তারিখ এবং 10:30 সময় দিয়ে একটি LocalDateTime অবজেক্ট তৈরি করেছে।
3. plus() এবং minus() - সময় বা দিন যোগ বা বিয়োগ করা:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a LocalDateTime object for a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30);
// Add 5 days to the date
LocalDateTime newDateTime = dateTime.plusDays(5);
// Subtract 2 hours from the date and time
LocalDateTime earlierDateTime = dateTime.minusHours(2);
// Print the new date and time
System.out.println("New Date and Time (after adding 5 days): " + newDateTime);
System.out.println("Earlier Date and Time (after subtracting 2 hours): " + earlierDateTime);
}
}
আউটপুট:
New Date and Time (after adding 5 days): 2024-12-28T14:30
Earlier Date and Time (after subtracting 2 hours): 2024-12-23T12:30
এখানে plusDays(5) এবং minusHours(2) মেথডগুলি ব্যবহার করা হয়েছে সময় এবং তারিখে পরিবর্তন করার জন্য।
4. format() - নির্দিষ্ট ফরম্যাটে তারিখ এবং সময় প্রদর্শন:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a LocalDateTime object for a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30);
// Define a custom date format
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
// Format the date and time
String formattedDateTime = dateTime.format(formatter);
// Print the formatted date and time
System.out.println("Formatted Date and Time: " + formattedDateTime);
}
}
আউটপুট:
Formatted Date and Time: 23-12-2024 14:30:00
এখানে DateTimeFormatter.ofPattern() মেথডটি ব্যবহার করে একটি কাস্টম ফরম্যাট তৈরি করা হয়েছে এবং format() মেথড দিয়ে তা প্রয়োগ করা হয়েছে।
5. getYear(), getMonth(), getDayOfMonth() - সময় এবং তারিখের বিভিন্ন অংশ বের করা:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a LocalDateTime object for a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30);
// Extract the year, month, and day
int year = dateTime.getYear();
int month = dateTime.getMonthValue();
int day = dateTime.getDayOfMonth();
// Print the extracted values
System.out.println("Year: " + year);
System.out.println("Month: " + month);
System.out.println("Day: " + day);
}
}
আউটপুট:
Year: 2024
Month: 12
Day: 23
এখানে getYear(), getMonthValue(), এবং getDayOfMonth() মেথডগুলি ব্যবহার করা হয়েছে তারিখের বিভিন্ন অংশ বের করার জন্য।
LocalDateTime এর অন্যান্য ব্যবহার:
isBefore()এবংisAfter(): এই মেথডগুলি দিয়ে দুটিLocalDateTimeএর তুলনা করা যায়।compareTo(): দুটিLocalDateTimeঅবজেক্টের তুলনা করার জন্য এটি ব্যবহার করা হয়।atStartOfDay(): এটি বর্তমানLocalDateএর শুরু সময় (00:00) রিটার্ন করে।toLocalDate()এবংtoLocalTime(): এগুলিLocalDateTimeঅবজেক্ট থেকে তারিখ এবং সময় আলাদাভাবে বের করার জন্য ব্যবহার করা হয়।
LocalDateTime ক্লাসটি Java-তে সময় এবং তারিখের ম্যানিপুলেশনকে সহজ এবং সঠিকভাবে পরিচালনা করার জন্য অত্যন্ত কার্যকরী। এটি ISO-8601 প্যাটার্ন অনুসরণ করে এবং কোনো টাইমজোন ছাড়াই স্থানীয় তারিখ এবং সময় ধারণ করে। Immutable, thread-safe, এবং easy-to-use হওয়ায় এটি মাল্টি-থ্রেডেড পরিবেশে নিরাপদ এবং কার্যকরী। LocalDateTime-এর বিভিন্ন মেথড যেমন now(), of(), plus(), format() ইত্যাদি, আপনাকে সময় এবং তারিখের সাথে সম্পর্কিত বিভিন্ন কাজ সহজে করতে সাহায্য করে।
LocalDateTime হল java.time প্যাকেজের একটি ক্লাস, যা তারিখ এবং সময়ের তথ্য একসাথে ধারণ করে। এটি LocalDate এবং LocalTime ক্লাসের একটি সংমিশ্রণ, যেখানে তারিখ (date) এবং সময় (time) উভয়েরই মান থাকে, তবে এতে টাইমজোন বা অঞ্চলভিত্তিক সময় (time zone) সম্পর্কিত কোনো তথ্য নেই।
এটি সাধারণত অঞ্চলভিত্তিক (timezone-independent) তারিখ এবং সময়ের জন্য ব্যবহৃত হয়, যেখানে সময়ের একটি নির্দিষ্ট অঞ্চল বা টাইমজোন দরকার পড়ে না।
LocalDateTime ক্লাসের সুবিধা:
- Immutable:
LocalDateTimeহল একটি অপরিবর্তনীয় (immutable) ক্লাস, অর্থাৎ একবার তৈরি হলে এর মান পরিবর্তন করা যায় না। - No Time Zone: এটি টাইমজোন সম্পর্কিত কোনো তথ্য ধারণ করে না, এবং সীমাহীন সময় বা লাভ-অফ-ডেট (clock) সম্পর্কিত তথ্য সঞ্চিত থাকে না।
- ISO-8601 Standard:
LocalDateTimeহল ISO-8601 তারিখ ও সময় ফরম্যাটের সাথে সামঞ্জস্যপূর্ণ। - Easy Manipulation:
LocalDateTimeক্লাসটি Fluent API প্রদান করে, যার মাধ্যমে আপনি সহজেই তারিখ এবং সময়ের উপর কাজ করতে পারবেন (যেমন দিন/মাস যোগ করা, সময় বিয়োগ করা ইত্যাদি)। - No Time Zone: এটি টাইমজোনের সাথে সম্পর্কিত নয়, তাই এটি একাধিক অঞ্চলে ব্যবহার করতে সহজ।
LocalDateTime ক্লাসের প্রধান মেথড:
- now(): বর্তমান তারিখ এবং সময় ফেরত দেয়।
- of(int year, int month, int dayOfMonth, int hour, int minute): নির্দিষ্ট বছর, মাস, দিন, ঘণ্টা এবং মিনিট দ্বারা একটি
LocalDateTimeঅবজেক্ট তৈরি করে। - getYear(), getMonth(), getDayOfMonth(), getHour(), getMinute(): এই মেথডগুলি
LocalDateTimeঅবজেক্টের বিভিন্ন অংশের মান ফেরত দেয়। - plusDays(long daysToAdd), minusDays(long daysToSubtract): নির্দিষ্ট পরিমাণ দিন যোগ বা বিয়োগ করতে ব্যবহৃত হয়।
- plusHours(long hoursToAdd), minusHours(long hoursToSubtract): ঘণ্টা যোগ বা বিয়োগ করার জন্য ব্যবহৃত হয়।
- withYear(int year), withMonth(int month), withDayOfMonth(int dayOfMonth): এই মেথডগুলির মাধ্যমে তারিখের কোনো নির্দিষ্ট অংশ পরিবর্তন করা যায়।
LocalDateTime ক্লাসের উদাহরণ:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// বর্তমান তারিখ এবং সময়
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current Date and Time: " + currentDateTime);
// নির্দিষ্ট তারিখ এবং সময় তৈরি করা
LocalDateTime specificDateTime = LocalDateTime.of(2024, 12, 25, 10, 30);
System.out.println("Specific Date and Time: " + specificDateTime);
// তারিখ এবং সময়ের বিভিন্ন অংশ বের করা
System.out.println("Year: " + currentDateTime.getYear());
System.out.println("Month: " + currentDateTime.getMonth());
System.out.println("Day of Month: " + currentDateTime.getDayOfMonth());
System.out.println("Hour: " + currentDateTime.getHour());
System.out.println("Minute: " + currentDateTime.getMinute());
// 5 দিন যোগ করা
LocalDateTime futureDateTime = currentDateTime.plusDays(5);
System.out.println("Date and Time after 5 days: " + futureDateTime);
// 3 ঘণ্টা বিয়োগ করা
LocalDateTime pastDateTime = currentDateTime.minusHours(3);
System.out.println("Date and Time 3 hours ago: " + pastDateTime);
}
}
ব্যাখ্যা:
LocalDateTime.now(): এটি বর্তমান তারিখ এবং সময় ফিরিয়ে দেয়।LocalDateTime.of(): এটি নির্দিষ্ট তারিখ এবং সময় তৈরি করতে ব্যবহৃত হয়। এখানে আমরা 2024 সালের ১২ মাসের ২৫ তারিখ, ১০:৩০ AM সেট করেছি।getYear(),getMonth(),getDayOfMonth(): এই মেথডগুলি দিয়ে আমরাLocalDateTimeএর বিভিন্ন অংশ (বছর, মাস, দিন) বের করেছি।plusDays(5): এখানে আমরা বর্তমান তারিখে ৫ দিন যোগ করেছি।minusHours(3): এখানে আমরা বর্তমান সময় থেকে ৩ ঘণ্টা বিয়োগ করেছি।
আউটপুট:
Current Date and Time: 2024-12-23T14:35:23.123
Specific Date and Time: 2024-12-25T10:30
Year: 2024
Month: DECEMBER
Day of Month: 23
Hour: 14
Minute: 35
Date and Time after 5 days: 2024-12-28T14:35:23.123
Date and Time 3 hours ago: 2024-12-23T11:35:23.123
LocalDateTime ক্লাসের আরও ব্যবহারের উদাহরণ:
1. Comparing LocalDateTime Objects:
LocalDateTime অবজেক্টের মধ্যে তুলনা করার জন্য isBefore(), isAfter(), এবং isEqual() মেথড ব্যবহার করা হয়।
import java.time.LocalDateTime;
public class LocalDateTimeComparison {
public static void main(String[] args) {
LocalDateTime dateTime1 = LocalDateTime.of(2024, 12, 25, 10, 30);
LocalDateTime dateTime2 = LocalDateTime.of(2024, 12, 26, 10, 30);
System.out.println("dateTime1 is before dateTime2: " + dateTime1.isBefore(dateTime2));
System.out.println("dateTime1 is after dateTime2: " + dateTime1.isAfter(dateTime2));
System.out.println("dateTime1 is equal to dateTime2: " + dateTime1.isEqual(dateTime2));
}
}
আউটপুট:
dateTime1 is before dateTime2: true
dateTime1 is after dateTime2: false
dateTime1 is equal to dateTime2: false
2. Checking Leap Year (with LocalDateTime)
LocalDateTime ক্লাসের মাধ্যমে আপনি Leap Year চেক করতে পারবেন, তবে এতে শুধুমাত্র LocalDate ক্লাসের সহায়তা প্রযোজ্য।
import java.time.LocalDateTime;
public class LeapYearCheck {
public static void main(String[] args) {
LocalDateTime date = LocalDateTime.of(2024, 2, 29, 10, 30);
boolean isLeapYear = date.toLocalDate().isLeapYear();
System.out.println("Is 2024 a Leap Year? " + isLeapYear);
}
}
আউটপুট:
Is 2024 a Leap Year? true
LocalDateTimeক্লাসটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা তারিখ এবং সময়সংক্রান্ত কাজ সহজ করে দেয়।- এটি immutable (অপরিবর্তনীয়) এবং টাইমজোন সম্পর্কিত কোন তথ্য ধারণ করে না।
LocalDateTimeব্যবহার করে date-time arithmetic, comparison, modification ইত্যাদি কাজ সহজে করা সম্ভব।- এর মাধ্যমে আপনি current date-time নিয়ে কাজ করতে পারেন, future/past dates যোগ বা বিয়োগ করতে পারেন, এবং বিভিন্ন date-time comparison করতে পারেন।
LocalDateTime আপনার প্রজেক্টে ISO 8601 ফরম্যাটে তারিখ এবং সময় ম্যানিপুলেট করার জন্য একটি অত্যন্ত শক্তিশালী এবং সুবিধাজনক টুল।
LocalDateTime ক্লাসটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস যা স্থানীয় তারিখ (Local Date) এবং স্থানীয় সময় (Local Time) কে একত্রিত করে। এটি LocalDate এবং LocalTime এর সংমিশ্রণ হিসেবে কাজ করে এবং কোনো টাইমজোনের বিবেচনা ছাড়াই তারিখ ও সময় সম্পর্কিত তথ্য ধারণ করে।
আপনি যখন LocalDate এবং LocalTime কে LocalDateTime এ রূপান্তর করতে চান, তখন আপনি এই দুটি ক্লাসের atTime() বা atDate() মেথড ব্যবহার করতে পারেন। এ দুটি ক্লাসের atTime() মেথডে LocalDate কে LocalTime এর সাথে একত্রিত করা যায়, আর atDate() মেথডে LocalTime কে LocalDate এর সাথে একত্রিত করা যায়।
LocalDateTime ক্লাস সম্পর্কে ধারণা:
LocalDateTime হল এমন একটি ক্লাস যা স্থানীয় তারিখ এবং স্থানীয় সময় (যেমন ঘণ্টা, মিনিট, সেকেন্ড) একত্রিত করে একটি সম্পূর্ণ তারিখ ও সময়ের মান তৈরি করে। এটি টাইমজোন সম্পর্কিত কোনো তথ্য ধারণ করে না, এটি শুধুমাত্র স্থানীয় তারিখ ও সময়ের সংমিশ্রণ।
LocalDate এবং LocalTime কে LocalDateTime এ রূপান্তর করা:
LocalDate: এটি শুধুমাত্র তারিখ ধারণ করে (যেমন: 2024-12-23)।LocalTime: এটি শুধুমাত্র সময় ধারণ করে (যেমন: 14:30:00)।LocalDateTime: এটি তারিখ এবং সময় একত্রিত করে (যেমন: 2024-12-23T14:30:00)।
LocalDateTime এ রূপান্তর উদাহরণ:
ধাপ 1: LocalDate এবং LocalTime তৈরি করা
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class LocalDateTimeConversionExample {
public static void main(String[] args) {
// Create a LocalDate object
LocalDate localDate = LocalDate.of(2024, 12, 23); // 23rd December 2024
// Create a LocalTime object
LocalTime localTime = LocalTime.of(14, 30); // 14:30 (2:30 PM)
// Convert LocalDate and LocalTime to LocalDateTime
LocalDateTime localDateTime = localDate.atTime(localTime); // Combine date and time
// Print the LocalDateTime
System.out.println("LocalDateTime: " + localDateTime);
}
}
আউটপুট:
LocalDateTime: 2024-12-23T14:30
ব্যাখ্যা:
LocalDate.of(2024, 12, 23): এটি একটি নির্দিষ্টLocalDateতৈরি করে যা 2024-12-23 তারিখটি ধারণ করে।LocalTime.of(14, 30): এটি একটি নির্দিষ্টLocalTimeতৈরি করে যা 14:30 (বা 2:30 PM) সময়টিকে ধারণ করে।localDate.atTime(localTime): এই মেথডটিLocalDateএবংLocalTimeএকত্রিত করে একটিLocalDateTimeঅবজেক্ট তৈরি করে, যার মান হবে 2024-12-23T14:30।
অন্য উপায়: LocalTime থেকে LocalDateTime তৈরি করা
অন্যদিকে, যদি আপনি LocalTime থেকে LocalDateTime তৈরি করতে চান, তবে atDate() মেথড ব্যবহার করা যায়, যেখানে আপনি একটি LocalDate ইনপুট হিসেবে দেন।
উদাহরণ:
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class LocalDateTimeConversionExample2 {
public static void main(String[] args) {
// Create a LocalTime object
LocalTime localTime = LocalTime.of(9, 15); // 09:15 AM
// Create a LocalDate object
LocalDate localDate = LocalDate.of(2024, 12, 23); // 23rd December 2024
// Convert LocalTime and LocalDate to LocalDateTime
LocalDateTime localDateTime = localTime.atDate(localDate); // Combine time and date
// Print the LocalDateTime
System.out.println("LocalDateTime: " + localDateTime);
}
}
আউটপুট:
LocalDateTime: 2024-12-23T09:15
ব্যাখ্যা:
LocalTime.of(9, 15): এটি একটি নির্দিষ্টLocalTimeতৈরি করে যা 09:15 (9:15 AM) সময়কে ধারণ করে।LocalDate.of(2024, 12, 23): এটি একটি নির্দিষ্টLocalDateতৈরি করে যা 2024-12-23 তারিখকে ধারণ করে।localTime.atDate(localDate): এটিLocalTimeএবংLocalDateএকত্রিত করে একটিLocalDateTimeতৈরি করে।
LocalDateTime ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
now(): এটি বর্তমান তারিখ এবং সময় প্রদান করে।LocalDateTime currentDateTime = LocalDateTime.now();of(): এটি একটি নির্দিষ্ট তারিখ এবং সময় তৈরি করতে ব্যবহার হয়।LocalDateTime specificDateTime = LocalDateTime.of(2024, 12, 23, 14, 30);atDate(): এটিLocalTimeকেLocalDateএর সাথে একত্রিত করে একটিLocalDateTimeতৈরি করে।LocalDateTime localDateTime = localTime.atDate(localDate);atTime(): এটিLocalDateকেLocalTimeএর সাথে একত্রিত করে একটিLocalDateTimeতৈরি করে।LocalDateTime localDateTime = localDate.atTime(localTime);plusDays(),plusHours(),plusMinutes(): এই মেথডগুলির মাধ্যমে আপনিLocalDateTimeএর উপর নির্দিষ্ট দিন, ঘণ্টা, মিনিট ইত্যাদি যোগ করতে পারেন।LocalDateTime newDateTime = localDateTime.plusDays(5);minusDays(),minusHours(),minusMinutes(): এই মেথডগুলির মাধ্যমে আপনিLocalDateTimeথেকে নির্দিষ্ট সময় বিয়োগ করতে পারেন।LocalDateTime newDateTime = localDateTime.minusHours(2);
LocalDateTimeহলLocalDateএবংLocalTimeএর সংমিশ্রণ, যা সময় এবং তারিখের কাজের জন্য কার্যকরী এবং সহজে ব্যবহারযোগ্য একটি ক্লাস।atTime()এবংatDate()মেথডের মাধ্যমে আপনিLocalDateএবংLocalTimeকেLocalDateTimeএ রূপান্তর করতে পারেন।LocalDateTimeক্লাস ব্যবহার করে আপনি টাইম এবং তারিখের সঙ্গে সম্পর্কিত বিভিন্ন অপারেশন করতে পারেন যেমন যোগ-বিয়োগ, ফরম্যাটিং এবং পার্সিং ইত্যাদি।
java.time.LocalDateTime ক্লাসটি Java 8 এর অংশ এবং এটি তারিখ এবং সময় সম্পর্কিত কাজ করার জন্য ব্যবহৃত হয়। এটি LocalDate এবং LocalTime এর একত্রিত রূপ, যার মাধ্যমে আপনি তারিখ ও সময় ম্যানিপুলেশন (যেমন, নির্দিষ্ট তারিখের উপর সময় যোগ করা বা নির্দিষ্ট সময়ের পরে তারিখ নির্ধারণ) করতে পারেন।
LocalDateTime ক্লাসটি কোনো নির্দিষ্ট সময় অঞ্চলের সঙ্গে সম্পর্কিত নয়, অর্থাৎ এটি যেকোনো সময় অঞ্চল থেকে স্বাধীন এবং ISO-8601 স্ট্যান্ডার্ডে নির্ধারিত থাকে।
LocalDateTime এর মাধ্যমে নির্দিষ্ট তারিখ ও সময় ম্যানিপুলেশন
এখানে LocalDateTime এর কিছু প্রধান ফিচার এবং উদাহরণ দেওয়া হচ্ছে:
1. বর্তমান তারিখ এবং সময় পাওয়া:
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Get the current date and time
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
}
}
আউটপুট:
Current DateTime: 2024-12-23T14:45:30.456
এখানে now() মেথড ব্যবহার করে বর্তমান তারিখ এবং সময় পাওয়া হয়েছে।
2. নির্দিষ্ট তারিখ এবং সময় তৈরি করা:
আপনি LocalDateTime.of() মেথড ব্যবহার করে একটি নির্দিষ্ট তারিখ এবং সময় তৈরি করতে পারেন।
import java.time.LocalDateTime;
public class SpecificDateTimeExample {
public static void main(String[] args) {
// Creating a specific date and time (2024-12-25 10:30)
LocalDateTime specificDateTime = LocalDateTime.of(2024, 12, 25, 10, 30);
System.out.println("Specific DateTime: " + specificDateTime);
}
}
আউটপুট:
Specific DateTime: 2024-12-25T10:30
এখানে LocalDateTime.of(year, month, day, hour, minute) পদ্ধতিটি ব্যবহার করে একটি নির্দিষ্ট তারিখ ও সময় তৈরি করা হয়েছে।
3. তারিখ এবং সময় যোগ/বিয়োগ করা:
LocalDateTime ক্লাসে আপনি plus এবং minus মেথড ব্যবহার করে সময়ের ওপর কাজ করতে পারেন, যেমন নির্দিষ্ট সময় যোগ বা বিয়োগ করা।
উদাহরণ: সময় যোগ করা:
import java.time.LocalDateTime;
public class AddTimeExample {
public static void main(String[] args) {
// Current DateTime
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
// Adding 2 days and 3 hours to the current DateTime
LocalDateTime newDateTime = currentDateTime.plusDays(2).plusHours(3);
System.out.println("New DateTime (After Adding 2 days and 3 hours): " + newDateTime);
}
}
আউটপুট:
Current DateTime: 2024-12-23T14:45:30.456
New DateTime (After Adding 2 days and 3 hours): 2024-12-25T17:45:30.456
এখানে plusDays() এবং plusHours() মেথডের মাধ্যমে ২ দিন এবং ৩ ঘণ্টা যোগ করা হয়েছে।
উদাহরণ: সময় বিয়োগ করা:
import java.time.LocalDateTime;
public class SubtractTimeExample {
public static void main(String[] args) {
// Current DateTime
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
// Subtracting 5 days and 2 hours from the current DateTime
LocalDateTime newDateTime = currentDateTime.minusDays(5).minusHours(2);
System.out.println("New DateTime (After Subtracting 5 days and 2 hours): " + newDateTime);
}
}
আউটপুট:
Current DateTime: 2024-12-23T14:45:30.456
New DateTime (After Subtracting 5 days and 2 hours): 2024-12-18T12:45:30.456
এখানে minusDays() এবং minusHours() মেথডের মাধ্যমে ৫ দিন এবং ২ ঘণ্টা বিয়োগ করা হয়েছে।
4. তারিখ এবং সময় ফরম্যাট করা:
DateTimeFormatter ব্যবহার করে আপনি LocalDateTime এর তারিখ এবং সময় ফরম্যাট করতে পারেন।
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class FormatDateTimeExample {
public static void main(String[] args) {
// Current DateTime
LocalDateTime currentDateTime = LocalDateTime.now();
// Define a custom format
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Format the DateTime
String formattedDateTime = currentDateTime.format(formatter);
System.out.println("Formatted DateTime: " + formattedDateTime);
}
}
আউটপুট:
Formatted DateTime: 2024-12-23 14:45:30
এখানে DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") ব্যবহার করে আমরা একটি কাস্টম ফরম্যাটে তারিখ এবং সময় প্রিন্ট করেছি।
5. তারিখ এবং সময়ের পার্থক্য বের করা (Duration and Period):
Duration এবং Period ব্যবহার করে আপনি দুটি LocalDateTime এর মধ্যে পার্থক্য বের করতে পারেন।
Duration Example (সময়ের পার্থক্য):
import java.time.Duration;
import java.time.LocalDateTime;
public class DurationExample {
public static void main(String[] args) {
// Current DateTime
LocalDateTime startDateTime = LocalDateTime.now();
// Adding 5 hours and 30 minutes to the current DateTime
LocalDateTime endDateTime = startDateTime.plusHours(5).plusMinutes(30);
// Calculate the duration between the two times
Duration duration = Duration.between(startDateTime, endDateTime);
System.out.println("Duration between the two DateTimes: " + duration.toHours() + " hours");
}
}
আউটপুট:
Duration between the two DateTimes: 5 hours
এখানে Duration.between(startDateTime, endDateTime) ব্যবহার করে আমরা দুটি LocalDateTime এর মধ্যে সময়ের পার্থক্য (Duration) বের করেছি।
Period Example (তারিখের পার্থক্য):
import java.time.LocalDateTime;
import java.time.Period;
public class PeriodExample {
public static void main(String[] args) {
// Current DateTime
LocalDateTime startDateTime = LocalDateTime.now();
// Adding 2 years, 3 months, and 15 days
LocalDateTime endDateTime = startDateTime.plusYears(2).plusMonths(3).plusDays(15);
// Calculate the period between the two dates
Period period = Period.between(startDateTime.toLocalDate(), endDateTime.toLocalDate());
System.out.println("Period between the two DateTimes: " + period.getYears() + " years, " + period.getMonths() + " months, " + period.getDays() + " days");
}
}
আউটপুট:
Period between the two DateTimes: 2 years, 3 months, 15 days
এখানে Period.between() ব্যবহার করে দুটি LocalDateTime এর মধ্যে তারিখের পার্থক্য বের করেছি।
LocalDateTime ক্লাসের মাধ্যমে আপনি তারিখ এবং সময়ের উপর বিভিন্ন ধরনের ম্যানিপুলেশন করতে পারেন, যেমন:
- বর্তমান তারিখ এবং সময় পাওয়া
- নির্দিষ্ট তারিখ এবং সময় তৈরি করা
- সময় যোগ বা বিয়োগ করা
- তারিখ এবং সময় ফরম্যাট করা
- তারিখ এবং সময়ের পার্থক্য বের করা
এটি ISO 8601 স্ট্যান্ডার্ড অনুসরণ করে এবং Java 8 এর পর থেকে এটি পূর্ববর্তী java.util.Date এবং java.util.Calendar এর তুলনায় আরও উন্নত এবং সঠিক উপায় প্রদান করে।
Java 8 এবং পরবর্তী সংস্করণে, java.time প্যাকেজটি LocalDateTime সহ বিভিন্ন ক্লাস সরবরাহ করেছে, যা তারিখ এবং সময়ের সাথে কাজ করার জন্য ব্যবহৃত হয়। LocalDateTime একটি তারিখ এবং সময়ের অবজেক্ট যা টাইমজোন ছাড়াই শুধু স্থানীয় সময় এবং তারিখ ধারণ করে।
LocalDateTime এর বৈশিষ্ট্য:
LocalDateTimeসময়ের সাথে তারিখ (year, month, day, hour, minute, second, nanosecond) সংরক্ষণ করে।- এটি টাইমজোনের সাথে সম্পর্কিত নয়, তাই এটি নির্দিষ্ট অঞ্চলের জন্য স্থানীয় সময় হিসাবে কাজ করে।
- এটি immutable (অপরিবর্তনীয়), মানে একবার তৈরি হলে তারিখ বা সময় পরিবর্তন করা সম্ভব নয়।
LocalDateTime ব্যবহার করার জন্য কিছু সাধারণ মেথড:
now(): বর্তমানLocalDateTimeঅবজেক্ট তৈরি করতে ব্যবহৃত হয়।of(): নির্দিষ্ট বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড এবং ন্যানোসেকেন্ড দিয়েLocalDateTimeতৈরি করতে ব্যবহৃত হয়।plusXXX()এবংminusXXX(): নির্দিষ্ট সময় যোগ বা বিয়োগ করার জন্য ব্যবহৃত হয়।getXXX(): তারিখ এবং সময়ের বিভিন্ন অংশ বের করার জন্য ব্যবহৃত হয়।toString():LocalDateTimeঅবজেক্টকে স্ট্রিং আকারে রূপান্তরিত করতে ব্যবহৃত হয়।
LocalDateTime ব্যবহার করার উদাহরণ:
1. বর্তমান তারিখ এবং সময় পাওয়া (Getting the Current Date and Time)
now() মেথড ব্যবহার করে বর্তমান তারিখ এবং সময় পাওয়া যায়।
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Get the current date and time
LocalDateTime currentDateTime = LocalDateTime.now();
// Print the current date and time
System.out.println("Current Date and Time: " + currentDateTime);
}
}
আউটপুট:
Current Date and Time: 2024-12-23T15:30:45.123456
ব্যাখ্যা:
LocalDateTime.now()মেথডটি বর্তমান সময় এবং তারিখ প্রদান করে।- আউটপুটে বছরের, মাসের, দিনের পাশাপাশি সময় এবং ন্যানোসেকেন্ডও দেখা যাচ্ছে।
2. নির্দিষ্ট তারিখ এবং সময় তৈরি (Creating a Specific Date and Time)
of() মেথড ব্যবহার করে আপনি নির্দিষ্ট তারিখ এবং সময় তৈরি করতে পারেন।
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a specific date and time (e.g., 15th August 2024 at 10:30 AM)
LocalDateTime specificDateTime = LocalDateTime.of(2024, 8, 15, 10, 30);
// Print the specific date and time
System.out.println("Specific Date and Time: " + specificDateTime);
}
}
আউটপুট:
Specific Date and Time: 2024-08-15T10:30
ব্যাখ্যা:
LocalDateTime.of(2024, 8, 15, 10, 30)মেথডের মাধ্যমে 15 আগস্ট 2024, সকাল 10:30 এর একটিLocalDateTimeঅবজেক্ট তৈরি করা হয়েছে।
3. সময় যোগ বা বিয়োগ করা (Adding or Subtracting Time)
plusXXX() এবং minusXXX() মেথডগুলি ব্যবহার করে আপনি তারিখ ও সময়ের সাথে যোগ বা বিয়োগ করতে পারেন।
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 8, 15, 10, 30);
// Add 5 days and 2 hours
LocalDateTime newDateTime = dateTime.plusDays(5).plusHours(2);
// Print the new date and time
System.out.println("New Date and Time after adding 5 days and 2 hours: " + newDateTime);
// Subtract 3 days and 1 hour
LocalDateTime subtractedDateTime = dateTime.minusDays(3).minusHours(1);
// Print the new date and time after subtraction
System.out.println("New Date and Time after subtracting 3 days and 1 hour: " + subtractedDateTime);
}
}
আউটপুট:
New Date and Time after adding 5 days and 2 hours: 2024-08-20T12:30
New Date and Time after subtracting 3 days and 1 hour: 2024-08-12T09:30
ব্যাখ্যা:
plusDays(5)এবংplusHours(2)মেথড ব্যবহার করে 5 দিন এবং 2 ঘণ্টা যোগ করা হয়েছে।minusDays(3)এবংminusHours(1)মেথড ব্যবহার করে 3 দিন এবং 1 ঘণ্টা বিয়োগ করা হয়েছে।
4. তারিখের বিভিন্ন অংশ বের করা (Extracting Different Parts of DateTime)
getXXX() মেথড ব্যবহার করে আপনি LocalDateTime এর বিভিন্ন অংশ যেমন বছর, মাস, দিন, ঘণ্টা, মিনিট, সেকেন্ড, ইত্যাদি বের করতে পারেন।
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 8, 15, 10, 30);
// Extract and print different parts of the date and time
System.out.println("Year: " + dateTime.getYear());
System.out.println("Month: " + dateTime.getMonth());
System.out.println("Day of Month: " + dateTime.getDayOfMonth());
System.out.println("Hour: " + dateTime.getHour());
System.out.println("Minute: " + dateTime.getMinute());
System.out.println("Second: " + dateTime.getSecond());
}
}
আউটপুট:
Year: 2024
Month: AUGUST
Day of Month: 15
Hour: 10
Minute: 30
Second: 0
ব্যাখ্যা:
getYear(),getMonth(),getDayOfMonth(),getHour(),getMinute(), এবংgetSecond()মেথডগুলি ব্যবহার করে তারিখ এবং সময়ের বিভিন্ন অংশ বের করা হয়েছে।
5. LocalDateTime এর String রূপান্তর (Converting LocalDateTime to String)
toString() মেথড ব্যবহার করে আপনি LocalDateTime অবজেক্টকে স্ট্রিং ফরম্যাটে রূপান্তর করতে পারেন।
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
// Create a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 8, 15, 10, 30);
// Convert LocalDateTime to String
String dateTimeString = dateTime.toString();
// Print the string representation
System.out.println("String representation of LocalDateTime: " + dateTimeString);
}
}
আউটপুট:
String representation of LocalDateTime: 2024-08-15T10:30
ব্যাখ্যা:
toString()মেথডটিLocalDateTimeঅবজেক্টকে একটি স্ট্যান্ডার্ড ISO-8601 স্ট্রিং ফরম্যাটে রূপান্তরিত করে, যেমন"2024-08-15T10:30"।
সারাংশ:
LocalDateTimeএকটি তারিখ এবং সময় অবজেক্ট যা টাইমজোন ছাড়া শুধুমাত্র স্থানীয় সময় এবং তারিখ ধারণ করে।now(),of(),plusXXX(),minusXXX(),getXXX(), এবংtoString()সহ বিভিন্ন মেথড ব্যবহার করে আপনিLocalDateTimeঅবজেক্ট তৈরি, পরিবর্তন এবং পরিচালনা করতে পারেন।LocalDateTimeখুবই শক্তিশালী এবং সহজলভ্য API, যা সময় এবং তারিখ ব্যবস্থাপনায় কার্যকরী এবং সহজ ব্যবহারের জন্য পরিচিত।
এটি Java 8 এর পরে প্রস্তাবিত Date-Time API এবং java.time প্যাকেজের অংশ, যা LocalDateTime এবং অন্যান্য তারিখ/সময় ক্লাসগুলির মাধ্যমে উন্নত এবং সহজভাবে সময় এবং তারিখ ম্যানেজমেন্ট করতে সক্ষম করে।
Read more